/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/

package rete;
import java.net.Socket;
import javax.swing.JOptionPane;
import java.io.BufferedReader;
import java.io.PrintStream;
import java.io.InputStreamReader;
import java.io.File;
import java.io.DataInputStream;
import java.io.FileOutputStream;

/*
* @author Administrator
*/
public class Client {

   static void client()
   {
       Socket conn = null;
       BufferedReader dalServer;
       DataInputStream streamI;
       FileOutputStream scriviFile;
       try{
       String ip = JOptionPane.showInputDialog("Dammi l'ip del server!");
       conn = new Socket(ip,HTTP.porta);
       }catch(Exception e)
       {
        JOptionPane.showMessageDialog(null,"Errore nella connessione!");
        System.exit(1);
       }
       try{
           dalServer = new BufferedReader(new InputStreamReader(conn.getInputStream()));
           String nomeF = dalServer.readLine();
           int grandezzaF = Integer.parseInt(dalServer.readLine());
           int buff = grandezzaF / 10000;
           byte buffer[] = new byte[HTTP.pacchetto];
           streamI = new DataInputStream(conn.getInputStream());
           File dir = new File("C:\\ricevut\\");
           if(!dir.exists())
               if(dir.mkdir())
                   System.out.println("Cartella ricevuti creata!");
               else
                   System.out.println("Cartella ricevuti non è stato possibile crearla!");
           File file = new File("c:\\ricevut\\"+nomeF);
           scriviFile = new FileOutputStream(file);
           System.out.println("Trasferimento file in corso!");
           /*int leggi = streamI.read(buffer);
           int i=0;
           for(int y=0; y<grandezzaF/HTTP.pacchetto;y++)
           {
            if(i>buff-1)
            {
             System.out.print("|");
             i=0;
            }
            scriviFile.write(leggi);
            leggi = streamI.read(buffer);
            i++;
           }
           leggi = streamI.read(buffer, 0, (int)grandezzaF%HTTP.pacchetto);
           scriviFile.write(leggi);
          */
           int y=0;
           System.out.println("grandezza FIle = "+grandezzaF+" / buffer = "+HTTP.pacchetto+" == "+grandezzaF/HTTP.pacchetto);

           for(int i=1; i<=grandezzaF/HTTP.pacchetto;i++)
           {

            System.out.println(i);
            if(y>buff-1)
            {
             System.out.print("|");
             y=0;
            }
            streamI.read(buffer);
            scriviFile.write(buffer);
            y++;
           }
           streamI.read(buffer, 0, (int)grandezzaF%HTTP.pacchetto);
           scriviFile.write(buffer, 0, (int)grandezzaF%HTTP.pacchetto);
           
           System.out.println("Trasferimento file Completato!");
           streamI.close();
           scriviFile.close();
           conn.close();
       }catch(Exception e)
       {
        JOptionPane.showMessageDialog(null,"Impossibile ricevere file: eccezzione=="+e);
       }
   }
}
